アンケートデータの加工 #勝手にAlteryx
こんにちは、DI部の兼本です。
色々あって新年1発目のエントリです。決してサボっていたわけではありません。
さて、今回は、アンケートデータの加工に挑戦します。 元データは以下のようなデータです。
ID | Q1 | Q2 | Q3 |
---|---|---|---|
1111 | 1,5 | 2 | 3,4,5 |
2222 | 4,5 | 1 | 1,2,3 |
3333 | 4 | 5 | 4,5 |
これを、
ID | Question | Answer |
---|---|---|
1111 | Q1 | 1 |
1111 | Q1 | 5 |
1111 | Q2 | 2 |
1111 | Q3 | 3 |
1111 | Q3 | 4 |
1111 | Q3 | 5 |
2222 | Q1 | 4 |
: | : | : |
という形式に変換します。
まず、1IDを一行で表現しているものを縦持ちに変換するところから処理します。 これは、Transpose(転置)ツールで1発変換です。
転置(Transpose)ツールはKey Fieldで指定したフィールドを基準として、Data Fieldのデータを横持ちから縦持ちに変換(アンピボット)します。 アンピボットしたデータは、元のフィールド名が「Name」に、データが「Value」に格納された状態になります。 また、Data Fieldの最終行にある「Dynamic or Unknown Field」というアイテムにチェックをしておくと、横方向に新しいデータがあった際に、自動的に同様の処理をしてくれます。 今回はアンケートの質問(Q1,Q2,Q3...)がいくつになるのかわからないので、チェックを入れておきます。
次に、アンピボットしたデータの「Value」フィールドに着目します。 このデータでは、1行に複数回答が入力されているケースがありますので、複数回答を複数行にします。
フィールド内のデータを分割する処理は「Text to Column」ツールを使います。
プロパティとして、分割したいテキストを含むフィールド(今回の場合は「Value」)を指定し、セパレータ(今回は「,」)、および、分割数を指定します。 フィールドを分割したら、元のデータは不要になるので「Select」ツールを使用して不要なフィールドを除外します。 ついでに「Name」というフィールド名では何を示しているのかわかりにくいので、「Question」という名前に変えておきましょう。
前行程でアンピボットしたデータですが、またまた横持ちのデータが増えてしまいましたね。 もう一度「Transpose」ツールを使って、再度アンピボットしましょう。
「Transpose」ツールでは、このように複数のKey Fieldを指定することも可能です。
作成したデータのうち、「Name」フィールドは不要なので、「Select」ツールを使って削除します。 また、「Value」フィールドの値がNullのデータも不要なので、「Filter」ツールで「Value」がNullではない(Is Not Null)データのみを取り出します。
はい、これで欲しかったデータを作成することができました。簡単でしたね。
まとめ
いかがでしたでしょうか。今回はアンケートデータの加工についてご紹介いたしました。
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。